<script>
	import Vue from 'vue'

	// APP 和 小程序平台
	// #ifdef  APP-PLUS || MP-WEIXIN   
	import TIM from 'tim-wx-sdk';
	import COS from 'cos-wx-sdk-v5';
	import TIMUploadPlugin from "tim-upload-plugin";
	// #endif

	// // #ifdef H5
	// import TIM from 'tim-js-sdk';
	// import TIMUploadPlugin from 'tim-upload-plugin'
	// logger.error(' TUIKit 暂不支持 H5 / web ，请使用者自己完成兼容哦，页面刷新可能会导致报错，需要重新登录 ');
	// // #endif

	// // #ifdef APP-PLUS
	// import Aegis from 'aegis-weex-sdk';
	// // #endif

	// #ifdef MP-WEIXIN
	import Aegis from 'aegis-mp-sdk';
	// #endif

	// // #ifdef H5
	// import Aegis from 'aegis-web-sdk';
	// // #endif

	import logger from './utils/logger'; // app.js
	// import {
	// 	genTestUserSig
	// } from './debug/GenerateTestUserSig.js';

	const aegis = new Aegis({
		id: 'iHWefAYqKznuxWjLnr', // 项目key
		reportApiSpeed: true, // 接口测速
	});
	uni.$aegis = aegis
	// 首先需要通过 uni.requireNativePlugin("ModuleName") 获取 module
	// #ifdef APP-PLUS
	const TUICallKit = uni.requireNativePlugin('TencentCloud-TUICallKit');
	logger.log(`| app |  TencentCloud-TUICallKit | TUICalling: ${TUICallKit}`);
	if (typeof(TUICallKit) == 'undefined') {
		logger.error(
			'如果需要音视频功能，请集成原生插件，使用真机运行并且自定义基座调试哦～ 插件地址：https://ext.dcloud.net.cn/plugin?id=9035 , 调试地址：https://nativesupport.dcloud.net.cn/NativePlugin/use/use'
		);
	}
	// #endif
	// //1. 导入统一身份信息管理模块
	// import uniIdPagesInit from '@/uni_modules/uni-id-pages/init.js';
	// //2. 导入uniIm的Utils工具类
	// import uniImUtils from '@/uni_modules/uni-im/common/utils.js';
	// import {
	// 	mutations as uniIdMutations
	// } from '@/uni_modules/uni-id-pages/common/store.js'
	// uniIdMutations.logout()
	export default {
		globalData: {
			// userInfo: userID userSig token phone
			userInfo: null,
			// 个人信息
			userProfile: null,
			isTUIKit: true,
			headerHeight: 0,
			statusBarHeight: 0,
			SDKAppID: 1400797962,
			height: 0,
			iphone: 0,
			isgoto: 0,
			city: '',
			district: '',
			onlogin: 0,
			is_one: true,
			newdata: 0,
			isLogin: 0,
			hasNews: 0,
			direct_uid: 0,
			mch_id: 0,
		},
		async onLaunch(e) {
			console.log('App Launch');
			// console.log("开始获取位置信息")
			// await uni.getLocation({
			// 	success: (res) => {
			// 		console.log(res, 'weizhi=================');
			// 		let lnglat = res.longitude + ',' + res.latitude
			// 		this.$api.nearest_address({}, lnglat, 1).then(res => {
			// 			if (res.data != null) {
			// 				console.log("获取到了", res)
			// 				getApp().globalData.city = res.data.city
			// 				getApp().globalData.district = res.data.district
			// 			} else {
			// 				console.log("获取失败")
			// 				uni.showModal({
			// 					title: '提示',
			// 					content: '您当前城市还未添加收货地址',
			// 					confirmText: '去添加',
			// 					success(res) {
			// 						if (res.confirm) {
			// 							console.log(res,'点击了确定==========================');
			// 							uni.navigateTo({
			// 								url: '/pageC/mine/Addaddress',
			// 								fail(res){
			// 									console.log(res,'失败了：：：：');
			// 								},
			// 								success(res){
			// 									console.log(res,'成功了========');
			// 								}
			// 							})
			// 						}
			// 					},
								
			// 				})
			// 			}
			// 		})
			// 	},
			// 	// fail(res) {
			// 	// 	uni.showToast({
			// 	// 		title: '请在手机设置中将定位打开',
			// 	// 		icon: "none",
			// 	// 		duration: 1000
			// 	// 	})
			// 	// }
			// })
			// const SDKAppID = genTestUserSig('').sdkAppID;
			const SDKAppID = 1400797962;
			uni.$aegis.reportEvent({
				name: 'onLaunch',
				ext1: 'onLaunch-success',
				ext2: 'uniTuikitExternal',
				ext3: `${SDKAppID}`,
			})
			uni.setStorageSync(`TIM_${SDKAppID}_isTUIKit`, true);
			// 重点注意： 为了 uni-app 更好地接入使用 tim，快速定位和解决问题，请勿修改 uni.$TUIKit 命名。
			// 如果您已经接入 tim ，请将 uni.tim 修改为 uni.$TUIKit。
			uni.$TUIKit = TIM.create({
				SDKAppID: SDKAppID
			});
			// #ifndef H5
			uni.$TUIKit.registerPlugin({
				'cos-wx-sdk': COS
			});
			uni.$TUIKit.setLogLevel(1);
			uni.$TUIKit.registerPlugin({
				"tim-upload-plugin": TIMUploadPlugin
			});
			// #endif

			// #ifdef H5
			uni.$TUIKit.registerPlugin({
				'tim-upload-plugin': TIMUploadPlugin
			})
			// #endif
			// 将原生插件挂载在 uni 上
			// #ifdef APP-PLUS
			uni.$TUICallKit = TUICallKit;
			// #endif
			// 如果您已创建了 tim，请将 tim 实例挂载在 wx 上，且不可以修改 wx.$TIM（修改变量可能导致 TUICallKit 组件无法正常使用）, 完成 TUICallKit 初始化，
			// 如果您没有创建，可以不传
			// #ifdef MP-WEIXIN

			wx.$TIM = uni.$TUIKit;
			// #endif
			uni.$TUIKitTIM = TIM;
			uni.$TUIKitEvent = TIM.EVENT;
			uni.$TUIKitVersion = TIM.VERSION;
			uni.$TUIKitTypes = TIM.TYPES; // 监听系统级事件
			uni.$resetLoginData = this.resetLoginData();
			uni.$TUIKit.on(uni.$TUIKitEvent.SDK_READY, this.onSDKReady);
			uni.$TUIKit.on(uni.$TUIKitEvent.SDK_NOT_READY, this.onSdkNotReady);
			uni.$TUIKit.on(uni.$TUIKitEvent.KICKED_OUT, this.onKickedOut);
			uni.$TUIKit.on(uni.$TUIKitEvent.ERROR, this.onTIMError);
			uni.$TUIKit.on(uni.$TUIKitEvent.NET_STATE_CHANGE, this.onNetStateChange);
			uni.$TUIKit.on(uni.$TUIKitEvent.SDK_RELOAD, this.onSDKReload);
			uni.$TUIKit.on(TIM.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, this.onTotalUnreadMessageCountUpdated);
			//3. 初始化uni身份信息管理模块
			// uniIdPagesInit();
			// //4. 初始化uniIm
			// uniImUtils.init();
			uni.getSystemInfo({
				success: function(e) {

					// #ifndef MP
					Vue.prototype.StatusBar = e.statusBarHeight;
					if (e.platform == 'android') {
						Vue.prototype.CustomBar = e.statusBarHeight + 50;
					} else {
						Vue.prototype.CustomBar = e.statusBarHeight + 45;
					};
					// #endif

					// #ifdef MP-WEIXIN
					Vue.prototype.StatusBar = e.statusBarHeight;
					uni.setStorage({
						data: e.statusBarHeight,
						key: 'height',
						success(e) {
							console.log(e);

						}
					})
					let custom = wx.getMenuButtonBoundingClientRect();
					Vue.prototype.Custom = custom;
					Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
					// #endif	

					// #ifdef MP-ALIPAY
					Vue.prototype.StatusBar = e.statusBarHeight;
					Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;
					// #endif
				}
			})
			// 手机状态栏高度获取end
		},
		onShow: function() {
			// uni.showModal({
			// 	title: '提示',
			// 	content: '您还未添加收货地址',
			// 	confirmText: '去添加',
			// 	success(res) {
			// 		if (res.confirm) {
			// 			uni.navigateTo({
			// 				url: '/pageB/mine/Addaddress'
			// 			})
			// 		}
			// 	}
			// })
			

			let that = this
			const updateManager = uni.getUpdateManager();
			updateManager.onCheckForUpdate(function(res) {});
			// updateManager.onUpdateReady(function(res) {
			// 	uni.showModal({
			// 		title: '更新提示',
			// 		content: '新版本已经准备好，是否重启应用？',
			// 		success(res) {
			// 			if (res.confirm) {
			// 				// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
			// 				updateManager.applyUpdate();
			// 			}
			// 		}
			// 	});
			// });
			// updateManager.onUpdateFailed(function(res) {
			// 	// 新的版本下载失败
			// });
			let numbers = 1
			uni.onSocketError((err) => {})
			// uni.onSocketMessage((res) => {
			// 	if (getApp().globalData.onlogin == 0) {
			// 		that.$api.online({
			// 			client_id: JSON.parse(res.data).client_id
			// 		}, 1).then(res => {
			// 			if (res && res.code == 200001) {
			// 				getApp().globalData.onlogin = 1
			// 			} else {}
			// 		})
			// 	}
			// 	let t = JSON.parse(res.data);
			// 	let num = -1;
			// 	let arr = [];
			// 	t.time = that.$utils.getThisTime()
			// 	if (!t.client_id) {
			// 		if (!t.type) {
			// 			const innerAudioContext = uni.createInnerAudioContext();
			// 			innerAudioContext.autoplay = true;
			// 			innerAudioContext.src = 'https://guizhouchenxun.com/notice.mp3';
			// 			innerAudioContext.onPlay(() => {});
			// 			innerAudioContext.onError((res) => {});
			// 			uni.getStorageInfo({
			// 				success: function(res) {
			// 					console.log("===============" + res.keys);
			// 					for (let i = 0; i < res.keys.length; i++) {
			// 						if (Number(res.keys[i])) {
			// 							arr.push(res.keys[i])
			// 						}
			// 					}
			// 					for (let i = 0; i < arr.length; i++) {
			// 						if (t.send_uid == arr[i]) {
			// 							num = i
			// 						}
			// 					}
			// 					if (num != -1) {
			// 						let s = []
			// 						s[0] = uni.getStorageSync("" + arr[num])
			// 						if (Array.isArray(s[0])) {
			// 							s = [...s[0]]
			// 						}
			// 						s.push(t)
			// 						uni.setStorageSync("" + arr[num], s)
			// 						num = -1
			// 					} else {
			// 						uni.setStorageSync("" + t.send_uid, t)
			// 					}
			// 				}
			// 			});
			// 		}
			// 	} else {
			// 		uni.setStorageSync("client_id", t.client_id);
			// 	}
			// })
		},
		onHide: function() {
			// 注意这里有时序问题，
			// 如果 uni.connectSocket 还没回调 uni.onSocketOpen，而先调用 uni.closeSocket，那么就做不到关闭 WebSocket 的目的。
			// 必须在 WebSocket 打开期间调用 uni.closeSocket 才能关闭。
			// uni.onSocketOpen(function () {
			//   uni.closeSocket();
			// });
			uni.onSocketClose(function(res) {
				console.log('WebSocket 已关闭！');
			});
		},
		onUnload: function() {
			console.log('App onUnload')
		},

		methods: {
			// 监听新消息数量变化
			// TODO:
			resetLoginData() {
				this.globalData.expiresIn = '';
				this.globalData.sessionID = '';
				this.globalData.userInfo = {
					userID: '',
					userSig: '',
					token: '',
					phone: ''
				};
				this.globalData.userProfile = null;
				logger.log(`| app |  resetLoginData | globalData: ${this.globalData}`);
			},
			onTIMError() {},
			onSDKReady({
				name
			}) {
				const isSDKReady = name === uni.$TUIKitEvent.SDK_READY ? true : false
				uni.$emit('isSDKReady', {
					isSDKReady: true
				});





			},
			onTotalUnreadMessageCountUpdated(e) {
				// console.log(e.data,'未读数量');
				let totalUnreadCount = uni.$TUIKit.getTotalUnreadMessageCount();
				console.log(totalUnreadCount, '未读数量');
				if (e.data > 0 && e.data < 99) {
					uni.setTabBarBadge({
						index: 3,
						text: e.data.toString(),
					})
				} else if (e.data >= 99) {
					uni.setTabBarBadge({
						index: 3,
						text: "99",
					})
				}
			},
			onNetStateChange() {},
			onSDKReload() {},
			onSdkNotReady() {},
			onKickedOut() {
				uni.showToast({
					title: '您被踢下线',
					icon: 'error'
				});
				// uni.navigateTo({
				// 	url: './pages/TUI-Login/login'
				// });
				uni.navigateTo({
					url: './pageB/login/login'
				})
			}
		}
	}
</script>

<style>
	/*每个页面公共css */
	@import "colorui/icon.css";
	@import "colorui/main.css";
	/* @import "colorui/animation.css"; */
</style>